package com.example.mq.mqserver.core;

import java.io.Serializable;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: DongGuoZhen
 * @Date: 2024/02/22/15:02
 * @Description: message的属性部分
 */

public class BasicProperties implements Serializable {
    //消息的唯一身份标识 此处为了保证id的唯一性,使用uuid来作为messageId
    private String messageId;
    //是一个消息上带有的内容,和bindingKey做匹配
    // 如果当前交换机类型是direct,此时routingKey就表示转发的队列名
    // 如果当前交换机类型是fanout,此时routingKey就没有意义
    // 如果当前交换机类型是topic,此时routingKey就要和bindingKey做匹配,符合要求才能转发
    private String routingKey;
    // 这个属性表示消息是否要持久化 1表示不持久化  2表示持久化
    private int deliverMode = 1;

    //对于RabbitMQ来说,里面还有很多其他属性,



    // get and set
    public String getMessageId() {
        return messageId;
    }

    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }

    public String getRoutingKey() {
        return routingKey;
    }

    public void setRoutingKey(String routingKey) {
        this.routingKey = routingKey;
    }

    public int getDeliverMode() {
        return deliverMode;
    }

    public void setDeliverMode(int deliverMode) {
        this.deliverMode = deliverMode;
    }

    @Override
    public String toString() {
        return "BasicProperties{" +
                "messageId='" + messageId + '\'' +
                ", routingKey='" + routingKey + '\'' +
                ", deliverMode=" + deliverMode +
                '}';
    }
}
